package com.iva.dao;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.iva.model.SgMensajes;
import com.iva.model.SgMensajesEnv;
import com.iva.model.TbActividad;
import com.iva.model.TbCatEstados;
import com.iva.model.TbPeriodoEvaluacion;
import com.iva.model.TbRotaciones;
import com.iva.model.TbRotacionesHasActividad;
import com.iva.model.VwAlumnosMateria;
import com.iva.model.VwAlumnosUsuario;
import com.iva.model.VwParentesco;
import com.iva.model.VwProfActividades;
import com.iva.model.VwRolUser;
import com.iva.model.VwRotaciones;
import com.iva.model.VwRotacionesDesc;
@Repository
public class FindDAOImpl  implements findDAO{

	@Autowired
	SessionFactory sessionFactory;
	
	@Override
	public List<VwAlumnosUsuario> listVwAlumnosUsuario(String query) {
		// TODO Auto-generated method stub
		String hql = "from VwAlumnosUsuario where  id.fullMail like '%"+query+"%'";
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<VwAlumnosMateria> listVwAlumnosMateria(String query) {
		// TODO Auto-generated method stub
		String hql = "from VwAlumnosMateria where  id.codigoAlumno = '"+query+"'";
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<VwAlumnosUsuario> listVwAmistades(String query) {
		// TODO Auto-generated method stub
		String hql = "from VwAlumnosUsuario";
		if(query != null){
			hql = hql + query;
		}
		System.out.println(hql);
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<VwRolUser> listVwRolUser(String query) {
		// TODO Auto-generated method stub
		String hql = "from VwRolUser";
		if(query != null){
			hql = hql + query;
		}
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<VwRotaciones> listProfesorMateria(String query) {
		// TODO Auto-generated method stub
		String hql = "from VwRotaciones";
		if(query != null){
			hql = hql + query;
		}
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public TbActividad findTbActividad(int idActividad) {
		// TODO Auto-generated method stub
		return (TbActividad)sessionFactory.getCurrentSession().get(TbActividad.class, idActividad);
	}

	public TbRotaciones findTbRotaciones(int id) {
		// TODO Auto-generated method stub
		return (TbRotaciones)sessionFactory.getCurrentSession().get(TbRotaciones.class, id);
	}

	@Override
	public List<VwProfActividades> listVwProfActividades(String query) {
		// TODO Auto-generated method stub
		String hql = "from VwProfActividades";
		if(query != null){
			hql = hql + query;
		}
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<VwParentesco> listVwAlumnoEncargado(String encargado) {
		// TODO Auto-generated method stub
		String hql = "from VwParentesco where id.emailEncargado='"+encargado+"'";
	return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public TbRotacionesHasActividad findTbRotacionesHasActividad(int id) {
		// TODO Auto-generated method stub
		return (TbRotacionesHasActividad)sessionFactory.getCurrentSession().get(TbRotacionesHasActividad.class, id);
	}

	@Override
	public List<TbActividad> listTbActividad(String sql) {
		// TODO Auto-generated method stub
		String hql = "from TbActividad";
		if(sql != null){
			hql = hql + sql;
		}
		System.out.println(hql);
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<VwRotacionesDesc> listRotacionesDesc(String sql) {
		// TODO Auto-generated method stub
		String hql = "from VwRotacionesDesc";
		if(sql != null){
			hql = hql + sql;
		}
		System.out.println(hql);
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<TbCatEstados> listTbCatEstados(String args) {
		String hql = "from TbCatEstados";
		if(args != null){
			hql = hql + args;
		}
		System.out.println(hql);
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public TbPeriodoEvaluacion findTbPeriodoEvaluacion(int idPeriodo) {
		// TODO Auto-generated method stub
		return (TbPeriodoEvaluacion)sessionFactory.getCurrentSession().get(TbPeriodoEvaluacion.class, idPeriodo);
	}
	
	
	
	
	
	
	
	
	
	
	
	
	

}

